package com.yileiqian.alg;

public class DynamicProgramming {
	public static void main(String args[]) {
		/*
		 * int x = 100; int y = 100; long[][] map = new long[x][y]; for (int i =
		 * 0; i < x; i++) { // System.out.print(i); map[i][0] = 1; } for (int i
		 * = 0; i < y; i++) { map[0][i] = 1; }
		 * 
		 * for (int i = 1; i < x; i++) { for (int j = 1; j < y; j++) { map[i][j]
		 * = map[i - 1][j] + map[i][j - 1]; } }
		 * 
		 * System.out.println(map[x - 1][y - 1]);
		 * 
		 * 
		 */
		
		int s = 101;
		long[][] n = new long[s][4];
		for (int i = 0; i < 4; i++) {
			n[0][i] = 0;
		}
		for (int i = 1; i < s; i++) {
			n[i][0] = 1;
		}
		for (int i = 1; i < s; i++) {
			n[i][1] = n[Math.max(0, i)][0] + n[Math.max(0, i - 5)][1];
		}
		for (int i = 1; i < s; i++) {
			n[i][2] = n[Math.max(0, i)][1] + n[Math.max(0, i - 10)][2];
		}
		for (int i = 1; i < s; i++) {
			n[i][3] = n[Math.max(0, i)][2] + n[Math.max(0, i - 25)][3];
		}
		System.out.println(n[s - 1][3]);
	}
}
